查看原文
其他

独家首发!实在受不了在线网站和收费软件,自制GIF压缩神器

砺心 阿虚同学 2023-08-30

阿虚同学

读完需要

8分钟

速读仅需 5 分钟

阿虚经常会在文章里配GIF表情包、GIF教程演示图,而公众号又有GIF大小限制,所以GIF压缩是我经常需要用到的东西

其实早在 2 年多以前我就详细写过GIF压缩这个话题了,之前的文章详细介绍了影响GIF质量的因素和GIF压缩的原理,同时还推荐了几个在线GIF压缩网站、软件:

不过此前介绍的GIF压缩软件和网站其实存在诸多问题,比如:

  • Ezgif:国外网站+全英文速度缓慢+上手有难度

  • 压缩图:国内网站现已收费

  • PP鸭:不能进一步设置,很多时候压缩不到自己满意的大小,且收费

  • Ulead GIF Animator:多年未更新导致大GIF图可能会无法保存,压缩算法也太旧,很多时候压缩不到自己满意的大小

虽然现在也有一些十分简单方便的国内GIF压缩网站(比如 docsmall.com),但网站始终无法保证它能一直稳定使用或者后期不收费(这个网站阿虚也遇到崩过几次了)

所以其实我 一直都在找令我满意的GIF压缩软件——而最近我算是突然开窍,换了个搜索思路之后终于是找到了令我满意的超牛GIF压缩软件

1


   

WinForGIFSicle

主要是那天打开之前推荐的 ezgif.com 的时候,才无意发现了人家网站上原来是有介绍它使用的是什么技术:采用的是 Gifsicle 项目开发的 Giflossy 编码器的 LZW压缩算法

Gifsicle 这个项目只是提供了算法,并没有提供可执行的程序,不过运气很好,我有幸找到了一款基于 Gifsicle 的带界面的GIF压缩软件 WinForGIFSicle:https://github.com/dandll/WinForGIFSicle

如果你访问Github困难,建议了解《2022 Github加速访问教程》

软件下载后打开就是下图这样,把图片拖进去设置一下压缩比例或者有损压缩率就能轻松压缩你的GIF了

不过实际使用中,阿虚发现这个软件还是有 2 个缺点:一是不能同时执行按按比例压缩和有损压缩,二是lossy压缩的值最大只能设置200(实际这个值可以设置为更大)

但好在这个软件开源且又是用C#写的,我恰好略懂C#,所以就拿着源码简单改了一下,姑且算作从原1.3升级到1.4吧

同时解决了以上俩问题,按下 lossy压缩 按钮的同时也可以对GIF图进行比例压缩,并且可以输入超过200的压缩值

需要这款阿虚修改后的工具的话,可以关注微信公众号:阿虚同学,在公众号后台聊天窗口发送以下关键词,后台即会自动回复下载地址:

GIF压缩

而为啥先推荐这款软件呢,是因为经过我多番对比测试,发现我一直常在使用的在线GIF压缩网站:docsmall.com,应该也是采用的 Gifsicle 提供的压缩算法——能在尽可能保留画质的前提下实现非常不错的压缩率

▲77%的压缩率

可以看到使用 WinForGIFSicle 开200 lossy压缩值得到的文件体积和 docsmall.com 上开极强压缩强度生成的文件大小是一样的,并且阿虚实际对比压缩后的GIF画面看起来也是一样的


2


   

ScreenToGif

不过实际使用中 WinForGIFSicle 有时候也不能达到令我满意的压缩率,所以我又在尝试寻找其他GIF压缩软件

总而言之,我翻过吾爱、知乎、各种论坛、国外网站等各个地方的推荐,又寻找遍测试过N多软件之后——我才发现阿虚之前就专门写文章推荐过的GIF录屏软件 ScreenToGif 竟然也是一款非常强大的GIF压缩软件


2.1


  

减少帧数

首先就是 ScreenToGif 有着今天要介绍的所有软件工具中独一份的减少GIF帧数功能

可以很方便的根据自己需求来删帧,阿虚一般是每3帧删除1帧,比起每2帧删1帧在通常情况下看起来会丝滑不少


2.2


  

GIF编码器

而之前之所以没有察觉到 ScreenToGif 的GIF压缩功能很强大,是因为 ScreenToGif 更新之后才又增加了非常多的 GIF编码器!

ScreenToGif 的话可以到其官网上下载:https://www.screentogif.com/

也可以直接到其Github上下载:https://github.com/NickeManarin/ScreenToGif/releases

如果你访问Github困难,建议了解《2022 Github加速访问教程》

从起初的 3M大小,如今已经更新到近70MB的安装包了,可见其更新功能之多

软件安装好之后默认打开是运行启动窗口,在启动窗口再选择你需要使用的功能,但阿虚然后是在软件的选项设置中,直接将启动使用改为「编辑器窗口」

如果你需要使用 ScreenToGif 录屏的话其实也可以在编辑器窗口左上角运行,但对于使用 ScreenToGif 来压缩GIF,操作步骤就要少了一步,更方便一点

然后使用 ScreenToGif 来压缩GIF的步骤就很简单了,打开软件,把GIF拖进去,接着点击另存为,选择合适的GIF编码,再保存即可

而关于 ScreenToGif 现有的 5 种 GIF 编码,阿虚也是经过非常多的测试,测试过程比较枯燥也难以展示(太多大GIF前后结果对比了),阿虚这里就简单说一下大致结论:

  1. ScreenToGif 内置编码器:如果你想要进行GIF压缩,就不用考虑这个编码了,这个编码基本上就是为了得到高质量GIF而存在的

  2. FFmpeg:我测试了 这个编码中所有抖动算法(5种)、像素格式(6种),组合下来结论就是这个算法并不适合用于GIF压缩,很多图片通过此编码重新导出后甚至还会反倒增大体积

  3. System:这个编码就更没啥好说的了,没有参数可供调整,偶有完全未经过压缩的GIF可以实现一点压缩效果,但压缩率很低,也是很多图片通过此编码重新导出后甚至还会反倒增大体积

ScreenToGif 中可用于GIF压缩的编码有 2 个

Gifski

一是阿虚用的比较多的 Gifski 编码,这个编码的使用方式非常简单,直接把质量拖到左边最低为1,然后另存为即可

在很多时候能得到比 Gifsicle 编码更低的文件质量,虽然文件质量小了自然意味着画质更低,对于有些比较精美的GIF图,如此高的细节损失估计是大家都不能忍受的

▲原图4MB,上为不同编码得到的压缩结果

但对于某些GIF来说,尤其是表情包,那点儿画质损失可能真就无所谓——甚至表情包可能就是要糊一点才更有感觉

▲原图为2MB,上为不同编码得到的压缩结果

KGy SOFT

然后就是比较复杂的 KGy SOFT 编码了,首先 ScreenToGif 内置了 3 个 KGy SOFT 预设,从上到下分别是 Balanced 平衡/High quality 高质量/Low quality 低质量

但默认参数得到的文件质量并不是最低,阿虚反复尝试调出了一个最低文件质量的配置!我们可以点击加号来添加一个新的导出预设

预设名称和描述什么的可以自行随意填写

然后具体编码器选项按如下设置,Quantizer 量化器这里选择「Ocrtree 八叉树算法」或者「Wu 吴晓林算法」都可以,阿虚个人测试感觉这两个算法输出的图片质量/文件大小都差不多(或者你也可以新建两个不同的预设)

Alpha Threshold 阈值这里拉到最低,Custom bit level 自定义位级别勾选上后也拉到最低,其他设置保持默认即可

用以上预设导出的GIF虽然会丢失大量的图片细节,但可以得到极低的文件质量

▲原图为2MB,上为不同编码得到的压缩结果

然后以上预设由于没添加 Ditherer 抖动器,所以只适合像上图这样颜色比较少的GIF图——如果原GIF颜色比较多又没有抖动器的话,画面很多细节就会糊在一起

当然你可以根据你的图片尝试勾选 Ditherer 抖动器尝试不同的抖动算法来得到更好的画面质量,但如此都必然会导致输出的文件质量增大

▲不同抖动算法对于画面的影响,点击查看大图

3


   

ImageMagick

然后还没完,在找软件的过程中,阿虚在国外翻到一篇压缩GIF的命令行方法,其中提及了我们还可以使用 Magick 来压缩GIF

但这个工具是一个命令行工具,需要先安装 ImageMagick 后配置系统环境等,再手动输入带参数的调用命令才能使用

而阿虚找了半天也没找到简单易用的 ImageMagick 图形化软件(主要是 ImageMagick 这个工具的功能太多了)

但阿虚仔细研究了一下,这个工具每个小功能的调用其实并不复杂,如果用其来压缩GIF也只有一个参数可供调整,并且这个工具其实有便携版不用安装即可有方法调用

于是我花了点时间写了一个批处理文件,同时再将其打包成了单文件软件,也算得上是带图形化界面的GIF压缩软件了

使用方法很简单,打开软件之后会弹出一个黑色的命令行界面,把要压缩的GIF拖进去,回车后,输入压缩率,回车,输入缩放率,回车,然后就会在原文件路径生成压缩后的图片

需要这款工具的话,可以关注微信公众号:阿虚同学,在公众号后台聊天窗口发送以下关键词,后台即会自动回复下载地址:

GIF压缩

ImageMagick 适合用来压缩什么GIF呢?非常适合用于压缩那种画面变化幅度不大的图片

比如阿虚测试的这张图,是在我测试过的所有GIF压缩工具/GIF编码中压缩得到文件最小同时画面质量又最令人满意的

▲原图4MB,上为不同编码得到的压缩结果

而为啥阿虚强调这个算法只推荐用于画面变化小的GIF图呢?因为这个算法会产生非常明显的画面动作轨迹残留,文字描述你可能不明白,但看一下图你就应该能懂了(下图为使用 ImageMagick,压缩率设为20得到的结果)

 

简单来说,目前并没有完美的GIF压缩工具,但我们可以根据不同情况选择不同压缩软件来尽可能得到令自己满意的压缩结果

最后总结一下今天介绍的这些GIF压缩工具,各自适用于什么样的使用场景:

  • WinForGIFSicle:画面色彩丰富

  • ScreenToGif-减少帧数:原图帧率过高

  • ScreenToGif-KGy SOFT编码:画面色彩单一

  • ScreenToGif-Gifski编码:不太在意画面质量损失,追求更低文件大小

  • ImageMagick:画面变化幅度不大

其中WinForGIFSicle由阿虚略微改进、基于ImageMagick的GIF压缩工具由阿虚原创

软件下载地址可在公众号后台发送关键词「GIF压缩」获取

最近跟着女票喝起了青汁补充维生素和膳食纤维,一开始以为不就是蔬菜汁嘛,肯定也不咋好喝,没想到喝下去却像是抹茶口味的,而且明显能体会到喝了之后肠道更疏通了~值得推荐给大家

我女票喜欢吃虾,各种虾都有买过,之前买过很多家的盐冻虾,几乎都是被冻在一起的☹︎,无意在京东京造买来试了试,结果是只只分明,每次吃多少拿多少非常方便~

价格实惠份量足,送货快,无论水煮还是直接闷,吃起来都香的很!

那天去游泳,她泳镜一侧扣不小掉了,就重新在李宁给她买了一个

值得一说的是李宁的泳裤+泳镜+泳帽套装还挺不错的,双层防尴尬而且穿着挺舒服,关键是泳镜还可以选近视度数且内置防雾,对我们这种近视人群就太友好了,阿虚的一套装备就是在李宁买的



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存